巨集是指將一連串的指令換為以一串文字替代,類似將往(往前+右轉)X4 換成話正方形一樣,LaTeX 有許多的巨集包(以下用 Package 代稱)可供使用,如有特殊需求也可以自行撰寫。
LaTeX 是由兩個部分所組成的,一個是編譯引擎( Engine )一個是格式,格式簡單來說是一個龐大的巨集,裡面將基本命令封裝成的高級命令,而編譯引擎則是負責命令轉成 PDF 的工作。
目前據我所知有以下兩種格式
Plain TeX 是高德納教授自行編寫的,但由於對普通人還是太過艱澀,所以之後 Leslie Lamport 編寫了 LaTeX,使得像我這樣的普通人也可以享受 TeX 帶來的方便性。
我並沒有使用過 Plain TeX 這個格式,所以本篇所有的程式碼都是基於 LaTeX 這個格式的。
據我所知有以下這幾種
當時的高德納教授正準備出版他的著作《The Art of Computer Programming》,但他覺得書商將他的著作排得太難看了,於是他便寫出了 TeX 來為自己的著作排版。
一開始 TeX 只能產生 dvi 檔,如果需要 pdf 檔得使用 dvips + ps2pdf 或 dvipdf 等,用久了難免會覺的不方便,於是就有人對 TeX 進行了改進,使 TeX 能夠直接的產生 Pdf 檔,而這改進過的引擎就被命名為 pdftex。
隨著時代的進步,TeX 並沒有消逝在歷史的洪流中,但對於日新月異的電腦科學來說,TeX 所支持的字體技術及編碼過於的老舊,於是便開發了支持 Opentype, Truetype, Unicode 的 XeTeX,並可以直接調用系統字體。
後來有人希望可以建立一個開放且可配置的 TeX 環境,於是就將 Lua 加進了 pdfTeX 裏成為了 LuaTeX。
LuaTeX 可在文章中直接使用 Lua 來改變排版細節,也支持 Unicode 編碼及現代的字型技術。
這算是一個比較特殊的分枝,在 TeX 傳入日本後,因為 TeX 本身不支持非拉丁語系的文字,於是日本人便將 TeX 依照自己的需求改進,最終的產物就是原生支持日文的 pTeX(但只支持特定編碼,upTeX 才支持 unicode 編碼) ,除了原生支持日文外也支持豎排文章。